package com.boss.salary.service;

import com.boss.common.entity.PageDTO;
import com.boss.framework.dto.PaginationDTO;
import com.boss.salary.entity.AgencySalaryPayment;
import com.boss.sys.ca.user.dto.UserDTO;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface IAgencySalaryPaymentService {

    /**
     * 查询分页数据
     * @param paginationDTO
     * @param queryParam
     * @return
     */
    PageDTO<AgencySalaryPayment> queryAgencySalaryPaymentPage(PaginationDTO paginationDTO, Map<String, Object> queryParam);

    /**
     * 获取预算指标数据分页
     * @param queryParam
     * @return
     * @throws IOException
     */
    PageDTO getIndexPage(Map<String, Object> queryParam);


    /**
     * 获取预算规则指标数据分页
     * @param queryParam
     * @return
     * @throws IOException
     */
    PageDTO getIndexRulePage(Map<String, Object> queryParam,List<String> agencyIds);

    /**
     * 获取已挂接的数据
     * @param salaryId
     * @param personType
     * @param year
     * @param province
     * @param agencyId
     * @return
     */
    List<AgencySalaryPayment> getHookUpData(String salaryId, String personType, String year, String province, String agencyId);

    /**
     * 保存挂接数据
     * @param agencySalaryPayment
     */
    void saveHookUpData(AgencySalaryPayment agencySalaryPayment, UserDTO userDTO);


    /**
     * 保存规则挂接数据
     * @param agencySalaryPayment
     */
    void saveRuleHookUpData(AgencySalaryPayment agencySalaryPayment, UserDTO userDTO);

    /**
     * 获取冻结指标信息
     * @param agencyId
     * @return
     */
    List<AgencySalaryPayment> getPaymentLock(String agencyId);

    /**
     * 批量清除单区划已挂接指标
     * @param userDTO
     */
    void deleteHookUpDataALL( UserDTO userDTO);
}
